/** 商品分类数据管理 */
import { defineStore } from "pinia"
import {
    getCateList,
    addCate,
    delCate,
    editCate
} from "../api/cateApi"
import { ElMessage } from "element-plus";

// 声明store
const useCateStore = defineStore("cates", {
    state: () => {
        return {
            cateList: [],
        }
    },
    getters: {

    },
    actions: {
        GET_CATELIST(list) {
            this.cateList = list
        },
        // 获取数据
        getCateListActions() {
            getCateList().then((res) => {
                console.log('商品分类的数据{}{}{}{}{}', res)
                if (res.code === 200) {
                    // 同步数据
                    this.GET_CATELIST(res.list)
                }
            })
        },
        // 新增
        addCateActions(cateForm) {
            // 上传图片需要将普通表单数据转换成formData对象
            const formData = new FormData()
            for (let key in cateForm) {
                // 将表单数据添加到formData对象中
                formData.append(key, cateForm[key])
            }
            addCate(formData).then((res) => {
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "新增类别成功"
                    })
                    // 重新获取数据
                    this.getCateListActions();
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },
        // 删除
        delCateActions(id) {
            delCate(id).then((res) => {
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "删除类别成功"
                    })
                    // 重新获取数据
                    this.getCateListActions();
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },
        // 编辑
        editCateActions(cateForm) {
            // 删除多余的属性
            delete cateForm['children']
            // 上传图片需要将普通表单数据转换成formData对象
            const formData = new FormData()
            for (let key in cateForm) {
                // 将表单数据添加到formData对象中
                formData.append(key, cateForm[key])
            }
            editCate(formData).then((res) => {
                console.log('编辑的分类结果', res)
                if (res.code === 200) {
                    ElMessage({
                        type: "success",
                        message: "编辑类别成功"
                    })
                    // 重新获取数据
                    this.getCateListActions();
                } else {
                    ElMessage({
                        type: "error",
                        message: res.msg
                    })
                }
            })
        },
    }
})
// 导出
export default useCateStore
